home *** CD-ROM | disk | FTP | other *** search
Wrap
package Local.Game.Thing { import Local.*; import Local.Game.*; import Local.Game.World.*; import STC9.System.*; import flash.display.*; import flash.events.*; import flash.filters.*; import flash.geom.*; public class CThingSprite extends CThingMain { public static var mMousePosition:Point; internal static var mcMouseScratch:MovieClip = new MovieClip(); public static var mAnimationCollection:Object; internal static var mCTSelected:ColorTransform = new ColorTransform(1,1,1,1,128,0,0,0); public static const mSpriteScalar:Number = 0.3; public static const mMatrixScalar:Matrix = new Matrix(mSpriteScalar,0,0,mSpriteScalar,0,0); internal static var mcDrawScratch:MovieClip = new MovieClip(); public static var bPlane:BitmapData; internal static var mCTNormal:ColorTransform = new ColorTransform(1,1,1,1,0,0,0,0); public static var mSpriteDump:Boolean = false; internal static var mCTHilight:ColorTransform = new ColorTransform(1,1,1,1,0,128,0,0); internal static var mCTFlash:ColorTransform = new ColorTransform(1,1,1,1,0,0,0,0); private var _SelectionFlash:int; private var _MouseSelected:Boolean; public var mDrawMatrix:Matrix; public var mAnimationLength:int; private var _MouseOver:Boolean; private var _ColorTransform:ColorTransform; public var mSprite:CSpriteFrame; public var mAnimation:Array; public function CThingSprite() { super(); mAnimationFrame = 0; } private static function CTClone(param1:ColorTransform) : ColorTransform { return new ColorTransform(param1.redMultiplier,param1.greenMultiplier,param1.blueMultiplier,param1.alphaMultiplier,param1.redOffset,param1.greenOffset,param1.blueOffset,param1.alphaOffset); } public function AddAnimation(param1:String, param2:Class, param3:String, param4:Boolean = true, param5:Boolean = false) : void { var _loc6_:MovieClip = null; var _loc7_:MovieClip = null; var _loc8_:* = 0; var _loc9_:* = 0; if(true) { if(!(mAnimation = AnimationExists(param1))) { addr31: _loc6_ = new param2(); mAnimation = new Array(); if(_loc7_ = FindTag(_loc6_,"animation")) { _loc6_.addEventListener(Event.ENTER_FRAME,FillFrames); _loc6_.mAnimation = mAnimation; _loc6_.tagAnimation = _loc7_; _loc6_.includeLastFrame = param4; _loc6_.addSprite = param3; _loc6_.frameIndex = 1; _loc6_.mThing = this; _loc6_.stop(); _loc6_.tagAnimation.stop(); } §§push(1); if(true) { _loc8_ = §§pop(); §§push(int(_loc6_.totalFrames - (param4 ? 0 : 1))); } _loc9_ = §§pop(); while(_loc8_ <= _loc9_) { _loc6_.gotoAndStop(_loc8_); this[param3](_loc6_); AddFrame(_loc8_ - 1); _loc8_++; } mAnimationCollection[mType][param1] = mAnimation; } SetAnimation(param1); if(true) { GetAnimationFrame(); CProfiler.AddDebug("mem animations",String(Math.ceil(mMemSize / 1000)) + "kb"); } return; } §§goto(addr31); } public function AddSprite_Line(param1:Number, param2:Number, param3:Number, param4:Number, param5:uint, param6:Number) : void { var _loc7_:Graphics = null; (_loc7_ = mcDrawScratch.graphics).clear(); _loc7_.lineStyle(param6,param5 & 16777215,(param5 >>> 24) / 255); _loc7_.moveTo(param1,param2); _loc7_.lineTo(param3,param4); mSprite = CSpriteFrame.asMovieClip(mcDrawScratch); §§push(mSprite); if(true) { §§pop().mCanDispose = true; mSprite.ApplyFilter(new GlowFilter(16777215,1,2,2,1,1)); §§push(mSprite); } §§pop().CaptureMovieClip(); } public function DrawSpriteQ() : void { if(mInvisible) { return; } bPlane.copyPixels(mSprite.mBMD,mSprite.mBMD.rect,GetDrawPosition().add(mSprite.mDisplacement),null,null,true); } private function FillFrames(param1:Event) : void { var _loc2_:MovieClip = null; _loc2_ = MovieClip(param1.currentTarget); if(_loc2_.frameIndex == 1) { _loc2_.mAnimation.length = 0; } _loc2_.tagAnimation.gotoAndStop(_loc2_.frameIndex); _loc2_.mThing[_loc2_.addSprite](_loc2_); _loc2_.mThing.AddFrame(_loc2_.frameIndex - 1); var _loc3_:*; var _loc4_:* = (_loc3_ = _loc2_).frameIndex + 1; if(true) { _loc3_.frameIndex = _loc4_; } if(_loc2_.frameIndex > _loc2_.tagAnimation.totalFrames - (!!_loc2_.includeLastFrame ? 0 : 1)) { _loc2_.removeEventListener(Event.ENTER_FRAME,FillFrames); } } public function set mColorTransform(param1:ColorTransform) : void { var _loc2_:* = undefined; _ColorTransform = param1; for each(_loc2_ in mChildren) { if(true) { _loc2_.mColorTransform = param1; } } } public function get mMemSize() : uint { var _loc1_:uint = 0; var _loc2_:Object = null; var _loc3_:Object = null; var _loc4_:CSpriteFrame = null; if(true) { §§push(0); if(true) { _loc1_ = §§pop(); addr28: §§push(0); } for each(_loc2_ in mAnimationCollection) { var _loc7_:int = 0; if(true) { for each(_loc3_ in _loc2_) { if(true) { for each(_loc4_ in _loc3_) { if(true) { _loc1_ += _loc4_.mMemSize; } } } } } } return _loc1_; } §§goto(addr28); } public function AddSprite_Scale(param1:MovieClip) : void { mSprite = CSpriteFrame.asMovieClip(param1); §§push(mSprite); if(true) { §§pop().ApplyFilter(new GlowFilter(2105376,1,2,2,1,1)); mSprite.ApplyScaleMatrix(mMatrixScalar); §§push(mSprite); } §§pop().CaptureMovieClip(); } public function GetObjectPosition(param1:String, param2:CPosition = null) : CPosition { return CPosition.CLONE(OrientatePoint(mSprite.mObjects[param1].mPosition.clone(),param2)); } public function AddSprite_Blue(param1:MovieClip) : void { if(true) { mSprite = CSpriteFrame.asMovieClip(param1); if(true) { mSprite.ApplyFilter(new GlowFilter(255,1,2,2,1,1)); if(true) { mSprite.ApplyBlue(); } mSprite.ApplyScaleMatrix(mMatrixScalar); } mSprite.CaptureMovieClip(); } } public function set mMouseOver(param1:Boolean) : void { if(true) { if(param1 != _MouseOver) { _MouseOver = param1; } } } public function AddAnimationAsFrames(param1:String, param2:Array) : void { var _loc3_:Object = null; if(!(mAnimation = AnimationExists(param1))) { mAnimation = new Array(); for each(_loc3_ in param2) { mSprite = CSpriteFrame.asFrame(_loc3_); AddFrame(mAnimation.length); } mAnimationCollection[mType][param1] = mAnimation; } SetAnimation(param1); GetAnimationFrame(); } public function SelectionFlash_Init() : void { if(true) { _SelectionFlash = mGameTick; mColorTransform = new ColorTransform(); } } private function AddSprite(param1:MovieClip, param2:Boolean, param3:GlowFilter, param4:Boolean) : void { mSprite = CSpriteFrame.asMovieClip(param1); if(param3) { mSprite.ApplyFilter(param3); } if(param2) { mSprite.ApplyBlacken(); } if(param4) { mSprite.ApplyScaleMatrix(mMatrixScalar); } mSprite.CaptureMovieClip(); } public function AddSprite_Normal(param1:MovieClip) : void { mSprite = CSpriteFrame.asMovieClip(param1); mSprite.CaptureMovieClip(); } public function Explode(param1:Point = null) : void { if(mDrawn && !mReachedObjective && !CGlobal.mFastRender) { mLandscape.AddExplodeBMD(mSprite.mBMD,mDrawMatrix,param1); } } public function ExplodeSmall(param1:Point = null) : void { §§push(mDrawn); §§push(mDrawn); if(true) { if(§§pop()) { §§pop(); §§push(!mReachedObjective); } §§push(§§pop()); } if(§§pop()) { §§pop(); §§push(!CGlobal.mFastRender); } if(§§pop()) { mLandscape.AddExplodeBMD(mSprite.mBMD,mDrawMatrix,param1,3); } } public function AnimationExists(param1:String) : Array { if(!mAnimationCollection) { mAnimationCollection = new Object(); } if(!mAnimationCollection[mType]) { mAnimationCollection[mType] = new Object(); } return mAnimationCollection[mType][param1]; } public function get mMouseSelected() : Boolean { return _MouseSelected; } public function FindTag(param1:MovieClip, param2:String) : MovieClip { var _loc3_:MovieClip = null; var _loc4_:int = 0; var _loc5_:DisplayObject = null; var _loc6_:String = null; var _loc7_:String = null; if(true) { _loc4_ = 0; } while(_loc4_ < param1.numChildren) { _loc6_ = (_loc5_ = param1.getChildAt(_loc4_)).name; _loc7_ = String(_loc5_); if(_loc5_.hasOwnProperty("totalFrames")) { if(_loc5_.name == param2) { return MovieClip(_loc5_); } if((_loc3_ = FindTag(MovieClip(_loc5_),param2)) != null) { return _loc3_; } } _loc4_++; } return null; } public function AddSprite_Black(param1:MovieClip) : void { mSprite = CSpriteFrame.asMovieClip(param1); mSprite.ApplyFilter(new GlowFilter(0,1,2,2,1,1)); mSprite.ApplyBlacken(); mSprite.ApplyScaleMatrix(mMatrixScalar); mSprite.CaptureMovieClip(); mSprite.PostFilter(new BevelFilter(0.5,115,16758816,1,0,1,1,1,0.25,3,"inner")); } public function SelectionFlash_Draw() : void { var _loc1_:Number = NaN; var _loc2_:int = 0; §§push(_SelectionFlash); if(true) { if(!§§pop()) { return; } _loc1_ = Math.floor(SECONDS * 0.5); _loc2_ = mGameTick - _SelectionFlash; §§push(_loc2_); } if(§§pop() > _loc1_) { _SelectionFlash = 0; mColorTransform = null; return; } mColorTransform.alphaMultiplier = !!(_loc2_ % 2) ? _loc2_ / _loc1_ * 0.7 : 1; } public function GetAnimationFrameQ() : CSpriteFrame { return mSprite = mAnimation[Math.floor(mAnimationFrame * mAnimationLength)]; } public function get mColorTransform() : ColorTransform { return _ColorTransform; } public function GetAnimationFrame() : CSpriteFrame { return mSprite = mAnimation[Math.floor(mAnimationFrame * mAnimationLength) % mAnimationLength]; } public function SetCollisionBySprite(param1:CSpriteFrame) : void { var _loc2_:Object = null; var _loc3_:Array = null; var _loc4_:int = 0; _loc3_ = new Array(); if(!param1.mObjects["cline1"]) { return; } _loc4_ = 1; while(true) { if(_loc4_ >= 10000) { if(true) { break; } mCollide = new CTCollideShape(this,_loc3_,(_loc2_ = param1.mObjects["mid"]) != null ? new CPosition(_loc2_.mPosition.x,_loc2_.mPosition.y) : new CPosition()); return; addr70: } if((_loc2_ = param1.mObjects["cline" + _loc4_]) == null) { break; } _loc3_.push(new CPosition(_loc2_.mPosition.x,_loc2_.mPosition.y)); _loc4_++; } §§goto(addr70); } public function get mMouseOver() : Boolean { return _MouseOver; } public function AddSprite_White(param1:MovieClip) : void { if(true) { mSprite = CSpriteFrame.asMovieClip(param1); if(true) { mSprite.ApplyFilter(new GlowFilter(16777215,1,2,2,1,1)); mSprite.ApplyScaleMatrix(mMatrixScalar); } mSprite.CaptureMovieClip(); } } public function AddSprite_Red(param1:MovieClip) : void { if(true) { mSprite = CSpriteFrame.asMovieClip(param1); if(true) { §§push(mSprite); if(true) { §§pop().ApplyFilter(new GlowFilter(16711680,1,2,2,1,1)); if(true) { §§push(mSprite); if(true) { §§pop().ApplyReden(); addr43: §§push(mSprite); } §§pop().ApplyScaleMatrix(mMatrixScalar); addr54: mSprite.CaptureMovieClip(); return; addr53: } §§goto(addr43); } §§goto(addr54); } §§goto(addr53); } §§goto(addr54); } public function SetAnimation(param1:String) : void { mAnimation = mAnimationCollection[mType][param1]; mAnimationLength = mAnimation.length; } override public function Draw() : void { super.Draw(); } private function AddFrame(param1:int) : void { if(true) { mAnimation.push(mSprite); mSprite.mFrameIndex = param1; } } public function DrawSprite(param1:Matrix) : void { var _loc2_:Matrix = null; var _loc3_:Point = null; if(mInvisible) { return; } mDrawMatrix = mSprite.mDispMatrix.clone(); mDrawMatrix.concat(param1); mDrawMatrix.tx += mPosition.x; mDrawMatrix.ty += mPosition.y; if(mSelectable) { _loc2_ = mDrawMatrix.clone(); if(true) { _loc2_.invert(); } _loc3_ = _loc2_.transformPoint(mMousePosition); if(mSprite.mBMD.getPixel32(_loc3_.x,_loc3_.y) > 16777215) { mWorld.mMouse.mOverThing = this; } SelectionFlash_Draw(); } if(param1.a == 1 && param1.d == 1) { DrawSpriteQ(); return; } mDrawMatrix.tx -= mLandscape.mDrawPosition.x; mDrawMatrix.ty -= mLandscape.mDrawPosition.y; bPlane.draw(mSprite.mBMD,mDrawMatrix,mColorTransform,null,null,true); } public function Animate1() : void { if(true) { mAnimationFrame += 1 / mAnimation.length; } } public function set mMouseSelected(param1:Boolean) : void { if(param1 != _MouseSelected) { _MouseSelected = param1; if(_MouseSelected) { SelectionFlash_Init(); } } } public function AddSprite_Black2(param1:MovieClip) : void { mSprite = CSpriteFrame.asMovieClip(param1); §§push(mSprite); if(true) { §§pop().ApplyFilter(new GlowFilter(0,1,2,2,1,1)); §§push(mSprite); if(true) { §§pop().ApplyScaleMatrix(mMatrixScalar); §§push(mSprite); } §§pop().CaptureMovieClip(); §§push(mSprite); } §§pop().PostFilter(new BevelFilter(0.5,115,16758816,1,0,1,1,1,0.25,3,"inner")); } override public function Dispose() : void { if(mDisposed) { return; } super.Dispose(); §§push(mSprite); if(true) { if(!§§pop()) { return; } §§push(mSprite); } if(§§pop().Dispose()) { mSprite = null; } } } }